1. Statement of the Technical Field
The inventive arrangements relate to software defined radios, and more particularly to data management within software defined radio systems.
2. Description of the Related Art
Modern wireless communications systems often include software applications for managing associated equipment. The equipment for a particular communications system is typically organized in a tree-like hierarchy representing the nodes of a communications system. For example, the communications system can include base station systems (BSS's), each of which contain sites employing a base transceiver station (BTS). Each site can contain sectors, and each sector can contain cells.
The controlling nerve center of the communications system is the operations maintenance center-radio (OMC-R). All configuration information about the communications system is persisted in the OMC-R. Through an OMC-R client, an operator can change the configuration states of any equipment in the communications system. The operator also can observe the health and status of the running system by viewing equipment run-time states and configurations.
In such a system there is a significant amount of data replication. For instance, in addition to being present on the site itself, the run-time states and configuration data of a particular site are replicated in the site's parent BSS, in the OMC-R server, and each OMC-R client (user interface). The BSS can process such information when executing functions to which the information is relevant, for example when determining when to, and when not to, hand over a call to a particular site. Additionally, the OMC-R client can present the replicated information to a system operator for evaluation.
In general, the replication of data helps to maintain high reliability and high performance in the communications system. For instance, a BSS typically needs configuration data from the OMC-R to operate, yet the BSS must continue to function even if the OMC-R is offline or otherwise unreachable. The use of replicated data enables such independence of operation. Additionally, the use of replicated data helps minimize the frequency of data exchanges between nodes of the system, thus reducing the impact of system latency, which otherwise may be unacceptable.
Although the benefits to using replicated data in a system is clear, such use of replicated data also presents considerable challenges. The most basic issue is that, as changes occur within the system, data can become stale and inconsistent with corresponding data in other nodes. For example, when an operator uses the OMC-R client to change the administrative state of a BTS from unlocked to locked, the corresponding data in nodes where the data is replicated will not reflect the change unless updated.
Updates can occur in a pull architecture or in a push architecture. In the pull architecture, each node is responsible for retrieving its own data updates. However, the node does not necessarily know when a data change has occurred that will effect the replicated data contained in the node. Periodic mechanisms (for example, polling) sometimes are used to initiate data updates in each node, but this approach presents two competing issues, namely latency and wasted network bandwidth. Each time a data update occurs, valuable bandwidth is used. Thus, although a short period can be used between data updates to minimize system latency, such an update scheme will certainly waste system bandwidth. If a longer period is used between data updates to conserve bandwidth, data can become stale due to the longer latency.
In the push architecture, the responsibility of updating other nodes is typically assigned to the node that has changed or the designated master node (containing the official superset of all replicated data). The responsible node sends an update message directly to each node that replicates the changed data. Since, the update message is triggered directly by the change itself, only one message will be sent to each node for each change. The result is that latency and network bandwidth usage are minimized. However, it is often difficult to implement a scheme that properly tracks each of the nodes that replicate the changed data item, especially in complex systems. To deal with that issue, the system architect may use a forwarding scheme such that when any data item is changed it sends a message to a predetermined node. The predetermined node then updates its data and forwards it to another node or nodes in a predetermined sequence. Thus, the data updates propagate through the system until the message reaches the final nodes that require the data updates. This approach is very challenging to implement, however, especially while trying to implement an architecture that is cohesive, loosely coupled and maintainable.